//
//  main.m
//  C03_作业
//
//  Created by dllo on 15/11/19.
//  Copyright © 2015年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
   /** 1.求1 X 2 X 3 X 4 X ... X 19 X 20的结果? */
#if 0
    {
    long result = 1;
    for (int i = 1; i < 21; i++) {
        result = result * i ;
    }
    printf("%ld\n",result);
    }
#endif
    /** 2.打印1-100的数,并求1-100之和,奇数之和,偶数之和 */
#if 0
    {
        int sum1 = 0;
        int sum2 = 0;
        int sum3 = 0;
        for (int i = 1; i <101; i++) {
        printf("%d ",i);
        sum1 = sum1 + i;
        if (i % 2 == 0) {
            sum2 = sum2 + i;
        } else {
            sum3 = sum3 + i;
        }
        
        }
        printf("\n");
        printf("1~100和为:%d\n",sum1);
        printf("偶数之和为:%d\n",sum2);
        printf("奇数之和为:%d\n",sum3);
    }
#endif
    /** 3.随机产生20个[10 , 100]的正整数,输出这些数以及他们中的 最大数。 */
#if 0
    {
        int max = 0;
        for (int i = 0; i < 20; i++) {
            int random = arc4random() % (100 - 10 + 1) + 10;
            printf("%3d",random);
            if (random > max) {
                max = random;
            }
        }
        printf("最大值为:%d\n",max);
    }
#endif
    /** 4.编程将所有“水仙花数”打印出来,并打印其总个数。 “水仙 花数”是一个各个位立方之和等于该整数的三位数(个位数立 方 + 十位数立方 + 百位数立方 = 这个整数)。*/
#if 0
    {
        for (int i = 1; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                for (int k = 0; k < 10; k++) {
                    if (k * k * k + j * j * j + i * i * i == i * 100 + j * 10 + k) {
                        printf("%d\n",i * 100 + j * 10 + k);
                    }
                }
            }
        }
    }
#endif
    /** 5.已知abc+cba = 1333,其中a、b、c均为一位数,编程求出 满足条件的a、b、c所有组合 */
#if 0
    {
        for (int a = 1; a < 10; a++) {
            for (int b = 0; b < 10; b++) {
                for (int c = 1; c < 10; c++) {
                    if ((a * 100 + b * 10 + c) + (c * 100 + b * 10 + a) == 1333) {
                        printf("%d,%d,%d\n", a, b, c);
                    }
                }
            }
        }
    }
#endif
    /** 6.输入两个数,求最大公约数和最小公倍数。(两种方法:辗转相除法和普通方法)。*/
#if 0
    {
        int max = 0;
        int min = 0;
        int temp = 0;
        int p = 0;
        printf("请输入两个数:");
        scanf("%d%d", &max, &min);
        if (max < min) {
            temp = max;
            max = min;
            min = temp;
        }
        p = max * min;
        while (max % min != 0) {
            temp = max % min;
            max = min;
            min = temp;
        }
        printf("最大公约数为:%d\n",min);
        printf("最小公倍数为:%d\n",p / min);
    }
#endif
    /** 7.找出1-99之间是7的倍数或者个位数字是7或者十位数字是7 的数字,并输出这些数字,统计有多少个? */
#if 0
    {
        int count = 0;
        for (int i = 1; i < 100; i++) {
            while (0 == i % 7 || 7 == i % 10 || 7 == i / 10){
                printf("%d ",i);
                count++;
            break;
            }
        }
        printf("统计有:%d个\n",count);
        printf("\n");
        
        
    }
#endif
    return 0;
}
